package ejbs;

import java.util.ArrayList;
import java.util.Iterator;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import entities.Cotizacion;
import entities.SolicitudCompra;
import entities.Url;

@Stateless
public class AdmUrlsBean implements AdmUrls {

	@PersistenceContext(unitName="TALLER")
	private EntityManager em;
	
    public AdmUrlsBean() {
    }

    public String getEndpointOficinaDeVentas(){

		Query query = em.createQuery("SELECT c FROM Url c");
		ArrayList<Url> urls = (ArrayList<Url>) query.getResultList();
		
		if (urls.isEmpty())
		{
			insertarUrls();
			return getEndpointOficinaDeVentas();
		}
		
		Iterator<Url> itr = urls.iterator();
		while(itr.hasNext())
		{
			Url url = itr.next();
			if (url.isEstaActiva() && url.getTipo().equalsIgnoreCase("WS"))
			{
				return url.getUrl();
			}
		}
		return null;
    }
    
    public void insertarUrls() {
    	
		Query query = em.createQuery("SELECT c FROM Url c");
		ArrayList<Url> urls = (ArrayList<Url>) query.getResultList();
		
		if (urls.isEmpty())
		{
	    	Url u1 = new Url();
	    	u1.setDescripcion("Oficina de ventas Guillermo");
	    	u1.setUrl("http://172.16.176.18:8080/IA_TPO_EAR_PROJECT-IA_TPO/SolicitudCotizacionServer");
	    	u1.setTipo("WS");
	    	u1.setEstaActiva(false);
	    	
	    	Url u2 = new Url();
	    	u2.setDescripcion("Oficina de ventas Diego");
	    	u2.setUrl("http://172.16.176.65:8080/OficinaVentasEAR-OficinaVentasEJB/SolicitudCotizacionServer");
	    	u2.setTipo("WS");
	    	u2.setEstaActiva(true);
	    	
	    	Url u3 = new Url();
	    	u3.setDescripcion("Oficina de ventas Sergio");
	    	u3.setUrl("http://172.16.176.99:8080/TP_IA_ODV_EAR-TP_IA_ODV_EJB/SolicitudCotizacionServer");
	    	u3.setTipo("WS");
	    	u3.setEstaActiva(false);
	    	
	    	Url u4 = new Url();
	    	u4.setDescripcion("Oficina de ventas Taller 1 (SOLO DE PRUEBA)");
	    	u4.setUrl("http://172.16.176.73:8080/taller14_ear-taller14_ejb/SolicitudCotizacionServer");
	    	u4.setTipo("WS");
	    	u4.setEstaActiva(false);
	    	
	    	Url u5 = new Url();
	    	u5.setDescripcion("Oficina de ventas Guillermo JMS");
	    	u5.setUrl("jnp://172.16.176.18:1099");
	    	u5.setTipo("JMS");
	    	u5.setEstaActiva(false);
	    	
	    	Url u6 = new Url();
	    	u6.setDescripcion("Oficina de ventas Diego JMS");
	    	u6.setUrl("jnp://172.16.176.65:1099");
	    	u6.setTipo("JMS");
	    	u6.setEstaActiva(true);
	    	
	    	Url u7 = new Url();
	    	u7.setDescripcion("Oficina de ventas Sergio JMS");
	    	u7.setUrl("jnp://172.16.176.99:1099");
	    	u7.setTipo("JMS");
	    	u7.setEstaActiva(false);
	    	
	    	Url u8 = new Url();
	    	u8.setDescripcion("Oficina de ventas Taller 1 JMS (SOLO DE PRUEBA)");
	    	u8.setUrl("jnp://172.16.176.73:1099");
	    	u8.setTipo("JMS");
	    	u8.setEstaActiva(false);
	    	
	    	em.persist(u1);
	    	em.persist(u2);
	    	em.persist(u3);
	    	em.persist(u4);
	    	em.persist(u5);
	    	em.persist(u6);
	    	em.persist(u7);
	    	em.persist(u8);
	    	
	    	em.flush();
		}
	}

	public String getJMSUrl(){

		Query query = em.createQuery("SELECT c FROM Url c");
		ArrayList<Url> urls = (ArrayList<Url>) query.getResultList();
		
		if (urls.isEmpty())
		{
			insertarUrls();
	    	return getJMSUrl();
		}
		
		Iterator<Url> itr = urls.iterator();
		while(itr.hasNext())
		{
			Url url = itr.next();
			if (url.isEstaActiva() && url.getTipo().equalsIgnoreCase("JMS"))
			{
				return url.getUrl();
			}
		}
		return null;
    }
    
}
